home *** CD-ROM | disk | FTP | other *** search
/ Programmer Plus 2007 / Programmer-Plus-2007.iso / Programming / ActiveX Controlls / NCTAudioEditor2 ActiveX DLL / NCTAudioEditor2.exe / {app} / Samples / TestDelphiAudioEditor2 / Main.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  2003-04-03  |  21.7 KB  |  649 lines

  1. unit Main;
  2.  
  3. interface
  4.  
  5. uses
  6.   Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  7.   Dialogs, ImgList, Menus, ComCtrls, ToolWin, OleCtrls, ActiveX, NCTAUDIOEDITOR2Lib_TLB;
  8.  
  9. type
  10.   TfrmMain = class(TForm)
  11.     CoolBar1: TCoolBar;
  12.     ToolBar1: TToolBar;
  13.     btnNew: TToolButton;
  14.     btnOpen: TToolButton;
  15.     btnSave: TToolButton;
  16.     ToolButton5: TToolButton;
  17.     btnOptions: TToolButton;
  18.     ToolButton7: TToolButton;
  19.     btnCopy: TToolButton;
  20.     btnCut: TToolButton;
  21.     btnPaste: TToolButton;
  22.     btnPasteMix: TToolButton;
  23.     ToolButton12: TToolButton;
  24.     btnUndo: TToolButton;
  25.     btnRedo: TToolButton;
  26.     ToolButton15: TToolButton;
  27.     btnZoomIn: TToolButton;
  28.     btnZoomOut: TToolButton;
  29.     btnZoomFull: TToolButton;
  30.     ToolButton19: TToolButton;
  31.     btnPlay: TToolButton;
  32.     btnPlayEnd: TToolButton;
  33.     btnPlayLoop: TToolButton;
  34.     btnRecord: TToolButton;
  35.     btnPause: TToolButton;
  36.     btnContinue: TToolButton;
  37.     btnStop: TToolButton;
  38.     ToolButton27: TToolButton;
  39.     btnLChannel: TToolButton;
  40.     btnRChannel: TToolButton;
  41.     ToolButton30: TToolButton;
  42.     btnAGC: TToolButton;
  43.     ToolBar2: TToolBar;
  44.     btnInvert: TToolButton;
  45.     btnDeleteSilence: TToolButton;
  46.     btnAmplifyPlus: TToolButton;
  47.     btnAmplifyMinus: TToolButton;
  48.     btnFadeIn: TToolButton;
  49.     btnFadeOut: TToolButton;
  50.     btnNormalize: TToolButton;
  51.     ToolButton39: TToolButton;
  52.     btnFlanger: TToolButton;
  53.     btnVibrato: TToolButton;
  54.     btnDelay: TToolButton;
  55.     ToolButton43: TToolButton;
  56.     btnNF: TToolButton;
  57.     btnBPF: TToolButton;
  58.     btnHPF: TToolButton;
  59.     btnLPF: TToolButton;
  60.     btnHSF: TToolButton;
  61.     btnLSF: TToolButton;
  62.     btnFFT: TToolButton;
  63.     ToolButton52: TToolButton;
  64.     btnInserSilence: TToolButton;
  65.     MainMenu1: TMainMenu;
  66.     mnuFile: TMenuItem;
  67.     mnuNew: TMenuItem;
  68.     mnuOpen: TMenuItem;
  69.     N1: TMenuItem;
  70.     mnuConvertSampleType: TMenuItem;
  71.     N2: TMenuItem;
  72.     mnuSaveAs: TMenuItem;
  73.     mnuSaveSelectAs: TMenuItem;
  74.     N3: TMenuItem;
  75.     mnuExit: TMenuItem;
  76.     StatusBar1: TStatusBar;
  77.     ProgressBar1: TProgressBar;
  78.     ProgressBar2: TProgressBar;
  79.     ImageList1: TImageList;
  80.     ImageList2: TImageList;
  81.     OpenDialog1: TOpenDialog;
  82.     SaveDialog1: TSaveDialog;
  83.     mnuView: TMenuItem;
  84.     mnuWaveFormView: TMenuItem;
  85.     mnuSpectralView: TMenuItem;
  86.     N4: TMenuItem;
  87.     mnuInfoList: TMenuItem;
  88.     mnuMarkerList: TMenuItem;
  89.     mnuEdit: TMenuItem;
  90.     mnuCopy: TMenuItem;
  91.     mnuCut: TMenuItem;
  92.     mnuPaste: TMenuItem;
  93.     nmuPasteFromFile: TMenuItem;
  94.     N5: TMenuItem;
  95.     mnuCopytoWindowsClipboard: TMenuItem;
  96.     mnuPastefromWindowsClipboard: TMenuItem;
  97.     N6: TMenuItem;
  98.     mnuMix: TMenuItem;
  99.     mnuMixFromFile: TMenuItem;
  100.     N7: TMenuItem;
  101.     mnuInsertSilence: TMenuItem;
  102.     mnuDeleteSilence: TMenuItem;
  103.     mnuOperation: TMenuItem;
  104.     mnuAmplifyPlus: TMenuItem;
  105.     mnuAmplifyMinus: TMenuItem;
  106.     mnuFadeIn: TMenuItem;
  107.     mnuFadeOut: TMenuItem;
  108.     mnuNormalize: TMenuItem;
  109.     N8: TMenuItem;
  110.     mnuInvert: TMenuItem;
  111.     mnuFlanger: TMenuItem;
  112.     mnuDelay: TMenuItem;
  113.     mnuVibrato: TMenuItem;
  114.     N9: TMenuItem;
  115.     mnuStretchPlus: TMenuItem;
  116.     mnuStretchMinus: TMenuItem;
  117.     mnuFilters: TMenuItem;
  118.     mnuNotch: TMenuItem;
  119.     mnuBandPass: TMenuItem;
  120.     mnuLowPass: TMenuItem;
  121.     mnuHighPass: TMenuItem;
  122.     mnuHighShelf: TMenuItem;
  123.     mnuLowShelf: TMenuItem;
  124.     mnuFFT: TMenuItem;
  125.     mnuHelp: TMenuItem;
  126.     mnuAbout: TMenuItem;
  127.     mnuInputDevice: TMenuItem;
  128.     mnuOutputDevice: TMenuItem;
  129.     N10: TMenuItem;
  130.     mnuOptions: TMenuItem;
  131.     Tools1: TMenuItem;
  132.     AudioEditor1: TAudioEditor2;
  133.     procedure btnOpenClick(Sender: TObject);
  134.     procedure btnContinueClick(Sender: TObject);
  135.     procedure btnPauseClick(Sender: TObject);
  136.     procedure btnZoomFullClick(Sender: TObject);
  137.     procedure btnRecordClick(Sender: TObject);
  138.     procedure btnStopClick(Sender: TObject);
  139.     procedure btnPlayClick(Sender: TObject);
  140.     procedure btnPlayEndClick(Sender: TObject);
  141.     procedure btnPlayLoopClick(Sender: TObject);
  142.     procedure btnUndoClick(Sender: TObject);
  143.     procedure btnRedoClick(Sender: TObject);
  144.     procedure btnCopyClick(Sender: TObject);
  145.     procedure btnCutClick(Sender: TObject);
  146.     procedure btnPasteClick(Sender: TObject);
  147.     procedure btnPasteMixClick(Sender: TObject);
  148.     procedure btnNewClick(Sender: TObject);
  149.     procedure btnSaveClick(Sender: TObject);
  150.     procedure btnZoomInClick(Sender: TObject);
  151.     procedure btnZoomOutClick(Sender: TObject);
  152.     procedure AudioEditor1Meter(Sender: TObject; LevelLeft: Integer; LevelRight: Integer);
  153.     procedure AudioEditor1ScaleXClick(Sender: TObject);
  154.     procedure AudioEditor1ScaleYClick(Sender: TObject);
  155.     procedure FormShow(Sender: TObject);
  156.     procedure AudioEditor1ChangePosition(Sender: TObject);
  157.     procedure btnDelayClick(Sender: TObject);
  158.     procedure btnBPFClick(Sender: TObject);
  159.     procedure btnVibratoClick(Sender: TObject);
  160.     procedure btnLSFClick(Sender: TObject);
  161.     procedure btnLPFClick(Sender: TObject);
  162.     procedure btnHSFClick(Sender: TObject);
  163.     procedure btnHPFClick(Sender: TObject);
  164.     procedure btnInserSilenceClick(Sender: TObject);
  165.     procedure btnNFClick(Sender: TObject);
  166.     procedure btnFlangerClick(Sender: TObject);
  167.     procedure btnAmplifyMinusClick(Sender: TObject);
  168.     procedure btnAmplifyPlusClick(Sender: TObject);
  169.     procedure btnDeleteSilenceClick(Sender: TObject);
  170.     procedure btnInvertClick(Sender: TObject);
  171.     procedure btnFadeOutClick(Sender: TObject);
  172.     procedure btnFadeInClick(Sender: TObject);
  173.     procedure btnNormalizeClick(Sender: TObject);
  174.     procedure btnFFTClick(Sender: TObject);
  175.     procedure btnAGCClick(Sender: TObject);
  176.     procedure mnuSaveSelectAsClick(Sender: TObject);
  177.     procedure mnuWaveFormViewClick(Sender: TObject);
  178.     procedure mnuSpectralViewClick(Sender: TObject);
  179.     procedure mnuCopytoWindowsClipboardClick(Sender: TObject);
  180.     procedure mnuPastefromWindowsClipboardClick(Sender: TObject);
  181.     procedure nmuPasteFromFileClick(Sender: TObject);
  182.     procedure mnuMixFromFileClick(Sender: TObject);
  183.     procedure mnuExitClick(Sender: TObject);
  184.     procedure mnuStretchPlusClick(Sender: TObject);
  185.     procedure mnuStretchMinusClick(Sender: TObject);
  186.     procedure btnLChannelClick(Sender: TObject);
  187.     procedure mnuInfoListClick(Sender: TObject);
  188.     procedure mnuMarkerListClick(Sender: TObject);
  189.     procedure mnuConvertSampleTypeClick(Sender: TObject);
  190.     procedure mnuInputDeviceClick(Sender: TObject);
  191.     procedure mnuOutputDeviceClick(Sender: TObject);
  192.     procedure btnOptionsClick(Sender: TObject);
  193.     procedure mnuAboutClick(Sender: TObject);
  194.     procedure AudioEditor1BlockOperation(Sender: TObject;
  195.       Percent: Smallint);
  196.     procedure AudioEditor1EndOperation(Sender: TObject);
  197.   private
  198.     { Private declarations }
  199.     procedure SetPosition;
  200.     procedure SetParam;
  201.   public
  202.     { Public declarations }
  203.   end;
  204.  
  205. var
  206.   frmMain: TfrmMain;
  207.  
  208. implementation
  209.  
  210. uses Vox, Raw, Info, CueList, Convert, Devices, Setup, About;
  211.  
  212. {$R *.dfm}
  213.  
  214. //---------------------------------------------------------------------------
  215. procedure TfrmMain.btnOpenClick(Sender: TObject);
  216. begin
  217.     if (OpenDialog1.Execute()) then begin
  218.         if (LowerCase(ExtractFileExt(OpenDialog1.FileName)) = '.vox') then frmVox.ShowModal();
  219.         if (LowerCase(ExtractFileExt(OpenDialog1.FileName)) = '.raw') Or (LowerCase(ExtractFileExt(OpenDialog1.FileName)) = '.pcm') then frmRaw.ShowModal();
  220.         AudioEditor1.Open(StringToOleStr(OpenDialog1.FileName),DEFAULT);
  221.         SetParam();
  222.     end;
  223. end;
  224. //---------------------------------------------------------------------------
  225. procedure TfrmMain.btnContinueClick(Sender: TObject);
  226. begin
  227.     AudioEditor1.Continue();
  228. end;
  229. //---------------------------------------------------------------------------
  230. procedure TfrmMain.btnPauseClick(Sender: TObject);
  231. begin
  232.     AudioEditor1.Pause();
  233. end;
  234. //---------------------------------------------------------------------------
  235. procedure TfrmMain.btnZoomFullClick(Sender: TObject);
  236. begin
  237.     AudioEditor1.ZoomFull();
  238. end;
  239. //---------------------------------------------------------------------------
  240. procedure TfrmMain.btnRecordClick(Sender: TObject);
  241. begin
  242.     AudioEditor1.Record_(RECORD_MIX);
  243. end;
  244. //---------------------------------------------------------------------------
  245. procedure TfrmMain.btnStopClick(Sender: TObject);
  246. begin
  247.     AudioEditor1.Stop();
  248. end;
  249. //---------------------------------------------------------------------------
  250. procedure TfrmMain.btnPlayClick(Sender: TObject);
  251. begin
  252.     AudioEditor1.Play(NORMALPLAY);
  253. end;
  254. //---------------------------------------------------------------------------
  255. procedure TfrmMain.btnPlayEndClick(Sender: TObject);
  256. begin
  257.     AudioEditor1.Play(PLAYTOEND);
  258. end;
  259. //---------------------------------------------------------------------------
  260. procedure TfrmMain.btnPlayLoopClick(Sender: TObject);
  261. begin
  262.     AudioEditor1.Play(PLAYLOOPED);
  263. end;
  264. //---------------------------------------------------------------------------
  265. procedure TfrmMain.btnUndoClick(Sender: TObject);
  266. begin
  267.     AudioEditor1.Undo();
  268. end;
  269. //---------------------------------------------------------------------------
  270. procedure TfrmMain.btnRedoClick(Sender: TObject);
  271. begin
  272.     AudioEditor1.Redo();
  273. end;
  274. //---------------------------------------------------------------------------
  275. procedure TfrmMain.btnCopyClick(Sender: TObject);
  276. begin
  277.     AudioEditor1.Copy();
  278. end;
  279. //---------------------------------------------------------------------------
  280. procedure TfrmMain.btnCutClick(Sender: TObject);
  281. begin
  282.     AudioEditor1.Cut();
  283. end;
  284. //---------------------------------------------------------------------------
  285. procedure TfrmMain.btnPasteClick(Sender: TObject);
  286. begin
  287.     AudioEditor1.Paste();
  288. end;
  289. //---------------------------------------------------------------------------
  290. procedure TfrmMain.btnPasteMixClick(Sender: TObject);
  291. begin
  292.     AudioEditor1.Mix(50,50);
  293. end;
  294. //---------------------------------------------------------------------------
  295. procedure TfrmMain.btnNewClick(Sender: TObject);
  296. begin
  297.     AudioEditor1.New(FQ_44_KHZ, STEREO);
  298. end;
  299. //---------------------------------------------------------------------------
  300. procedure TfrmMain.btnSaveClick(Sender: TObject);
  301. begin
  302.     if (SaveDialog1.Execute()) then begin
  303.         if (SaveDialog1.FilterIndex = 1) then AudioEditor1.FileFormat.SetFormatFromMenu();
  304.         AudioEditor1.Save(StringToOleStr(SaveDialog1.FileName),False,DEFAULT);
  305.         OpenDialog1.FileName := SaveDialog1.FileName;
  306.         SetParam();
  307.     end;
  308. end;
  309. //---------------------------------------------------------------------------
  310.  
  311. procedure TfrmMain.btnZoomInClick(Sender: TObject);
  312. begin
  313.     AudioEditor1.ZoomIn();    
  314. end;
  315. //---------------------------------------------------------------------------
  316.  
  317. procedure TfrmMain.btnZoomOutClick(Sender: TObject);
  318. begin
  319.     AudioEditor1.ZoomOut();
  320. end;
  321. //---------------------------------------------------------------------------
  322.  
  323. procedure TfrmMain.AudioEditor1Meter(Sender: TObject; LevelLeft: Integer; LevelRight: Integer);
  324. begin
  325.     ProgressBar1.Position := LevelLeft;
  326.     ProgressBar2.Position := LevelRight;
  327. end;
  328. //---------------------------------------------------------------------------
  329.  
  330. procedure TfrmMain.AudioEditor1ScaleXClick(Sender: TObject);
  331. begin
  332.     ShowMessage('Click Scale X');
  333. end;
  334. //---------------------------------------------------------------------------
  335.  
  336. procedure TfrmMain.AudioEditor1ScaleYClick(Sender: TObject);
  337. begin
  338.     ShowMessage('Click Scale Y');
  339. end;
  340. //---------------------------------------------------------------------------
  341.  
  342. procedure TfrmMain.SetPosition;
  343. begin
  344.     StatusBar1.Panels.Items[3].Text := IntToStr(AudioEditor1.Position.StartView);
  345.     StatusBar1.Panels.Items[4].Text := IntToStr(AudioEditor1.Position.EndView);
  346.  
  347.     StatusBar1.Panels.Items[5].Text := IntToStr(AudioEditor1.Position.StartSelect);
  348.     StatusBar1.Panels.Items[6].Text := IntToStr(AudioEditor1.Position.EndSelect);
  349.     StatusBar1.Refresh();
  350. end;
  351. //---------------------------------------------------------------------------
  352.  
  353. procedure TfrmMain.SetParam;
  354. begin
  355.     StatusBar1.Panels.Items[0].Text := OpenDialog1.FileName;
  356.     StatusBar1.Panels.Items[1].Text := AudioEditor1.FileInfo.FormatString;
  357.     StatusBar1.Panels.Items[2].Text := IntToStr(AudioEditor1.Position.TotalSamples);
  358.     ProgressBar1.Position := 0;
  359.     ProgressBar2.Position := 0;
  360.     SetPosition();
  361. end;
  362. //---------------------------------------------------------------------------
  363. procedure TfrmMain.FormShow(Sender: TObject);
  364. begin
  365.     SetParam();    
  366. end;
  367. //---------------------------------------------------------------------------
  368.  
  369. procedure TfrmMain.AudioEditor1ChangePosition(Sender: TObject);
  370. begin
  371.     SetPosition();    
  372. end;
  373. //---------------------------------------------------------------------------
  374.  
  375. procedure TfrmMain.btnDelayClick(Sender: TObject);
  376. begin
  377.     AudioEditor1.Transform.Delay(120, 30, 10);
  378. end;
  379. //---------------------------------------------------------------------------
  380.  
  381. procedure TfrmMain.btnBPFClick(Sender: TObject);
  382. begin
  383.     AudioEditor1.Transform.BandPassFilter(AudioEditor1.FileInfo.Frequency / 100, 100);
  384. end;
  385. //---------------------------------------------------------------------------
  386.  
  387. procedure TfrmMain.btnVibratoClick(Sender: TObject);
  388. begin
  389.     AudioEditor1.Transform.Vibrato(25, 3, 0);
  390. end;
  391. //---------------------------------------------------------------------------
  392.  
  393. procedure TfrmMain.btnLSFClick(Sender: TObject);
  394. begin
  395.     AudioEditor1.Transform.LowShelfFilter(AudioEditor1.FileInfo.Frequency / 200, -10, 100);
  396. end;
  397. //---------------------------------------------------------------------------
  398.  
  399. procedure TfrmMain.btnLPFClick(Sender: TObject);
  400. begin
  401.     AudioEditor1.Transform.LowPassFilter(AudioEditor1.FileInfo.Frequency / 50, 50);
  402. end;
  403. //---------------------------------------------------------------------------
  404.  
  405. procedure TfrmMain.btnHSFClick(Sender: TObject);
  406. begin
  407.     AudioEditor1.Transform.HighShelfFilter(AudioEditor1.FileInfo.Frequency / 100, -10, 100);
  408. end;
  409. //---------------------------------------------------------------------------
  410.  
  411. procedure TfrmMain.btnHPFClick(Sender: TObject);
  412. begin
  413.     AudioEditor1.Transform.HighPassFilter(AudioEditor1.FileInfo.Frequency / 100, 100);
  414. end;
  415. //---------------------------------------------------------------------------
  416.  
  417. procedure TfrmMain.btnInserSilenceClick(Sender: TObject);
  418. begin
  419.     AudioEditor1.Transform.InsertSilence(343);
  420. end;
  421. //---------------------------------------------------------------------------
  422.  
  423. procedure TfrmMain.btnNFClick(Sender: TObject);
  424. begin
  425.     AudioEditor1.Transform.NotchFilter(50, 100);
  426. end;
  427. //---------------------------------------------------------------------------
  428.  
  429. procedure TfrmMain.btnFlangerClick(Sender: TObject);
  430. begin
  431.     AudioEditor1.Transform.Flanger(50, 30, 10, 50, 5, 0);
  432. end;
  433. //---------------------------------------------------------------------------
  434.  
  435. procedure TfrmMain.btnAmplifyMinusClick(Sender: TObject);
  436. begin
  437.     AudioEditor1.Transform.Amplify(60);
  438. end;
  439. //---------------------------------------------------------------------------
  440.  
  441. procedure TfrmMain.btnAmplifyPlusClick(Sender: TObject);
  442. begin
  443.     AudioEditor1.Transform.Amplify(140);
  444. end;
  445. //---------------------------------------------------------------------------
  446.  
  447. procedure TfrmMain.btnDeleteSilenceClick(Sender: TObject);
  448. begin
  449.     AudioEditor1.Transform.Silence();
  450. end;
  451. //---------------------------------------------------------------------------
  452.  
  453. procedure TfrmMain.btnInvertClick(Sender: TObject);
  454. begin
  455.     AudioEditor1.Transform.Invert();
  456. end;
  457. //---------------------------------------------------------------------------
  458.  
  459. procedure TfrmMain.btnFadeOutClick(Sender: TObject);
  460. begin
  461.     AudioEditor1.Transform.Fade(100, 0);
  462. end;
  463. //---------------------------------------------------------------------------
  464.  
  465. procedure TfrmMain.btnFadeInClick(Sender: TObject);
  466. begin
  467.     AudioEditor1.Transform.Fade(0, 100);
  468. end;
  469. //---------------------------------------------------------------------------
  470.  
  471. procedure TfrmMain.btnNormalizeClick(Sender: TObject);
  472. begin
  473.     AudioEditor1.Transform.Normalize(80, True);
  474. end;
  475. //---------------------------------------------------------------------------
  476.  
  477. procedure TfrmMain.btnFFTClick(Sender: TObject);
  478. var
  479.     FFT: PSafeArray;
  480.     kBass: Single;
  481.     kTreble: Single;
  482.     pFFT: array [0..511] of Single;
  483.     i: Integer;
  484. begin
  485.     kBass := -0.5;
  486.     kTreble := 0.5;
  487.  
  488.     FFT := SafeArrayCreateVector(VT_R4,0,512);
  489.  
  490.     for i := 0 to 511 do pFFT[i] := 1;
  491.     for i := 0 to 100 do pFFT[i] := pFFT[i] + (1 - i / 100) * kBass;
  492.     for i := 101 to 511 do pFFT[i] := pFFT[i] + ((i - 100) / 411) * kTreble;
  493.     for i := 0 to 511 do SafeArrayPutElement(FFT,i,pFFT[i]);
  494.     
  495.     AudioEditor1.Transform.FFTFilter(FFT);
  496.     SafeArrayDestroy(FFT);
  497. end;
  498. //---------------------------------------------------------------------------
  499.  
  500. procedure TfrmMain.btnAGCClick(Sender: TObject);
  501. begin
  502.     AudioEditor1.Recorder.AGCEnabled := btnAGC.Down;    
  503. end;
  504. //---------------------------------------------------------------------------
  505.  
  506.  
  507. procedure TfrmMain.mnuSaveSelectAsClick(Sender: TObject);
  508. begin
  509.     if (SaveDialog1.Execute()) then begin
  510.         if (SaveDialog1.FilterIndex = 1) then AudioEditor1.FileFormat.SetFormatFromMenu();
  511.         AudioEditor1.Save(StringToOleStr(SaveDialog1.FileName),True,DEFAULT);
  512.         SetParam();
  513.     end;
  514. end;
  515. //---------------------------------------------------------------------------
  516.  
  517. procedure TfrmMain.mnuWaveFormViewClick(Sender: TObject);
  518. begin
  519.     AudioEditor1.TypeView := WAVEFORM;
  520.     mnuWaveFormView.Checked := True;
  521. end;
  522. //---------------------------------------------------------------------------
  523.  
  524. procedure TfrmMain.mnuSpectralViewClick(Sender: TObject);
  525. begin
  526.     AudioEditor1.TypeView := SPECTRAL;
  527.     mnuSpectralView.Checked := True;
  528. end;
  529. //---------------------------------------------------------------------------
  530.  
  531. procedure TfrmMain.mnuCopytoWindowsClipboardClick(Sender: TObject);
  532. begin
  533.     AudioEditor1.CopyToClipboard();    
  534. end;
  535. //---------------------------------------------------------------------------
  536.  
  537. procedure TfrmMain.mnuPastefromWindowsClipboardClick(Sender: TObject);
  538. begin
  539.     AudioEditor1.PasteFromClipboard();    
  540. end;
  541. //---------------------------------------------------------------------------
  542.  
  543. procedure TfrmMain.nmuPasteFromFileClick(Sender: TObject);
  544. var
  545.     fn: AnsiString;
  546. begin
  547.     fn := OpenDialog1.FileName;
  548.     if (OpenDialog1.Execute()) then AudioEditor1.PasteFromFile(StringToOleStr(OpenDialog1.FileName));
  549.     OpenDialog1.FileName := fn;
  550. end;
  551. //---------------------------------------------------------------------------
  552.  
  553. procedure TfrmMain.mnuMixFromFileClick(Sender: TObject);
  554. var
  555.     fn: AnsiString;
  556. begin
  557.     fn := OpenDialog1.FileName;
  558.     if (OpenDialog1.Execute()) then AudioEditor1.MixFromFile(50,StringToOleStr(OpenDialog1.FileName),50);
  559.     OpenDialog1.FileName := fn;
  560. end;
  561. //---------------------------------------------------------------------------
  562.  
  563. procedure TfrmMain.mnuExitClick(Sender: TObject);
  564. begin
  565.     Close();    
  566. end;
  567. //---------------------------------------------------------------------------
  568.  
  569. procedure TfrmMain.mnuStretchPlusClick(Sender: TObject);
  570. begin
  571.     AudioEditor1.Transform.TimeStretch(120);
  572. end;
  573. //---------------------------------------------------------------------------
  574.  
  575. procedure TfrmMain.mnuStretchMinusClick(Sender: TObject);
  576. begin
  577.     AudioEditor1.Transform.TimeStretch(80);
  578. end;
  579. //---------------------------------------------------------------------------
  580.  
  581. procedure TfrmMain.btnLChannelClick(Sender: TObject);
  582. begin
  583.     AudioEditor1.Channels.Num := 1;
  584.     AudioEditor1.Channels.Visible := btnLChannel.Down;
  585.     AudioEditor1.Channels.Num := 2;
  586.     AudioEditor1.Channels.Visible := btnRChannel.Down;
  587. end;
  588. //---------------------------------------------------------------------------
  589.  
  590. procedure TfrmMain.mnuInfoListClick(Sender: TObject);
  591. begin
  592.     frmInfo.ShowModal();    
  593. end;
  594. //---------------------------------------------------------------------------
  595.  
  596. procedure TfrmMain.mnuMarkerListClick(Sender: TObject);
  597. begin
  598.     frmCueList.ShowModal();
  599. end;
  600. //---------------------------------------------------------------------------
  601.  
  602. procedure TfrmMain.mnuConvertSampleTypeClick(Sender: TObject);
  603. begin
  604.     frmConvert.ShowModal();
  605. end;
  606. //---------------------------------------------------------------------------
  607.  
  608. procedure TfrmMain.mnuInputDeviceClick(Sender: TObject);
  609. begin
  610.     frmDevices.Dev := frmMain.AudioEditor1.DeviceInput;
  611.     frmDevices.srcCap := 'Select';
  612.     frmDevices.ShowModal();
  613. end;
  614. //---------------------------------------------------------------------------
  615.  
  616. procedure TfrmMain.mnuOutputDeviceClick(Sender: TObject);
  617. begin
  618.     frmDevices.Dev := frmMain.AudioEditor1.DeviceOutput;
  619.     frmDevices.srcCap := 'Mute';
  620.     frmDevices.ShowModal();
  621. end;
  622. //---------------------------------------------------------------------------
  623.  
  624. procedure TfrmMain.btnOptionsClick(Sender: TObject);
  625. begin
  626.     frmOptions.ShowModal();    
  627. end;
  628. //---------------------------------------------------------------------------
  629.  
  630. procedure TfrmMain.mnuAboutClick(Sender: TObject);
  631. begin
  632.     frmAbout.ShowModal();    
  633. end;
  634. //---------------------------------------------------------------------------
  635. procedure TfrmMain.AudioEditor1BlockOperation(Sender: TObject;
  636.   Percent: Smallint);
  637. begin
  638.     ProgressBar1.Position := Percent;
  639.     ProgressBar2.Position := Percent;
  640. end;
  641.  
  642. procedure TfrmMain.AudioEditor1EndOperation(Sender: TObject);
  643. begin
  644.     ProgressBar1.Position := 0;
  645.     ProgressBar2.Position := 0;
  646. end;
  647.  
  648. end.
  649.